1. Technical Field
The present disclosure relates generally to position determination, and more specifically to techniques for precisely determining a user's position inside of a structure.
2. Background Information
A variety of classes of applications may require precise determination of a user's position inside of a structure (e.g., a building). One class of applications that may require a precise fix of a user's position inside of a structure is augmented reality (AR) applications. In an example AR application, a portable system may capture images of the structure and supplement them to provide an AR view, where computer-generated graphics and/or text are overlaid upon the captured images. Such graphics and/or text may describe, among other things, features that are normally hidden from view inside the structure, such as pipes, ventilation ducts, wiring, and/or other infrastructure, and provide information concerning their properties and requirements. Time may be saved by allowing the user to readily “see” the location of such infrastructure, and learn about its properties, without opening walls or ceiling bays, or consulting supplemental information sources (e.g., paper documents). However, in order to overlay the correct graphics and/or text at the correct locations to create an AR view, it is necessary to precisely determine the position inside of the structure from which the underlying images of the structure are being captured (i.e., the position of the user). Errors in the determination of this position may lead to incorrect graphics and/or text being overlaid at incorrect locations, and may substantially reduce the benefits of an AR view.
Another class of applications that may require a precise determination of a user's position inside of a structure is user guidance applications. While a variety of types of users may require some sort of guidance when moving about within a structure, user guidance is particularly important in emergency-response situations. A first responder, such as a firefighter, is often called upon to move about an unfamiliar structure, in which visibility is impaired (for example, due to smoke, darkness, etc.). Should a first responder become disoriented, they may be unable to assist others, and may require assistance themselves, compounding the emergency situation. It may be desirable to provide a first responder with an emergency-response guidance system that would, for example, visually display their position upon a map of the structure. However, for such a mapping system to be safe and useful, the indicated location must be precise. Even a small error in position may disorient and endanger a first responder. For example, should the error falsely indicate the first responder is on one side of a wall, in a space that has a route to a nearby exit, when they truly are on the other side of the wall, and thus cut off from the exit, a first responder may become trapped.
There are a number of existing techniques that can be used to determine, or at least attempt to determine, a user's location inside of a structure. Such systems generally fall into two categories: prepared tracking environment systems and unprepared tracking environment systems.
In prepared tracking environment systems, devices such as radio-frequency identification (RFID) emitters, beacons, and the like, are pre-positioned at specific locations inside of a structure. These pre-positioned devices may later be detected by a sensor carried by the user, and utilized to determine the user's position within the structure. While such prepared tracking environment systems may provide reasonable position accuracy, the need to pre-position devices renders them impractical for many applications. For instance, they may be unsuited for use with many AR applications, as the time needed to pre-position the devices may negate the potential time savings achieved by providing an AR view. Similarly, they may be unsuited for use with guiding a user, for example, a first responder in an emergency situation, due to the time and care needed to pre-position the devices.
In unprepared tracking environment systems, a user's position is determined without reliance on pre-positioned devices within the structure. While this addresses some of the issues of prepared tracking environment systems, existing unprepared tracking environment systems have their own host of problems and shortcomings.
Some existing unprepared tracking environment systems attempt to use image data captured within the structure to determine a position of the user within the structure. For example, an image-based technique may compare an image captured by a camera carried by the user with a database of images of the interior, and estimate the potential position of the user based on this comparison. While in ideal situations, such image-based techniques may function, they are hindered by a number of practical issues. Given similarities between different portions of the structure (e.g., each level of a multi-level structure may have an identical floor plan and thus may “look alike”) the captured image data may be insufficient to unambiguously determine the user's position. Further, considerable processing power it typically needed to analyze and process the image data. Still further, image-based techniques are typically inoperative in situations where visibility is impaired inside of the structure (for example, due to smoke, darkness, etc.), and therefore are unsuitable for emergency-response guidance systems.
Other existing unprepared tracking environment systems attempt to utilize inertial tracking to determine the position of the user in the structure. In such techniques, one or more accelerometers may be carried by, or attached to, the user, and utilized to estimate the relative displacement of the user from a known starting position. The acceleration data returned by the accelerometer may be double integrated over time to yield linear displacement data. The linear displacement data may then be used to determine the user's present position within the structure. While in theory, this is all that should be needed to determine the position of the user, in practice there are a number of issues that render such simple techniques unworkable. Foremost is the issue of accelerometer drift. Even very small errors in measurement (e.g., due to bias, noise, etc.) in the measured acceleration are amplified tremendously as a result of the double integration over time. After the user has taken a few footsteps, the user's calculated position typically will differ so much from their real position that the calculated position is practically meaningless.
Some attempts have been made to mitigate the issue of accelerometer drift in inertial-tracking position determination systems by zeroing, or resetting, the drift periodically. One such technique involves affixing the accelerometer to the foot of the user, and detecting the user's footsteps. At each footstep, when the user's foot touches the ground, it may be assumed that the speed of the accelerometer with respect to the ground is zero, and the integration of acceleration may be re-initialized, resetting accelerometer drift. Such a technique is commonly referred to as a “zero velocity updates” technique. However, while such technique may reduce the problem of accelerometer drift somewhat, the precision of the calculated position is still inadequate for many applications.
Another technique for mitigating the issue of accelerometer drift in inertial-tracking position determination systems involves use of a computer-implemented model of the structure and particle filtering. In such a technique, rather than directly utilize the linear displacement data determined from the accelerometer, the user's position is approximated by a cloud of particles inside a computer-implemented model of the structure. Using model features (e.g. walls or other obstacles) the cloud of particles is reduced or filtered to yield a user's most plausible position. Specifically, every time the user moves, several new particle are created inside the model, the new particles being scattered in the believed direction of the user's movement, but differing by a small amount. Then, each particle that violates a physical constraint represented in the model is eliminated. For example, particles that represent “impossible positions”, which could only be achieved if a user had taken some impossible, or at least highly unlikely action, such as having just walked through a wall, are eliminated. The elimination of particles that represent “impossible positions” reduces the cloud of particles. The cloud of particles is then used to determine a position of the user.
Yet, while such a technique may offer improved precision, even this improved precision may be inadequate for many applications. With this technique, precision of the user's position is highly dependent on the nature of the indoor environment in which the user is located. When there are few, or no, physical constraints nearby the user, particles cannot be effectively eliminated. For instance, a user who is moving though a large open area (e.g., a large room) within a structure may be free to move in any direction without encountering any physical constraint (e.g., hitting a wall), and because of this, the number of participles in a cloud of particles that represents their potential position may not readily be reduced.
What is needed is an improved technique for determining a user's position inside of a structure that may be used in an unprepared tracking environment and that is precise in a variety of interior environments, including interior environments in which there are few, or no, obstacles nearby the user.